import { defineStore } from 'pinia'

export const useSearchHistoryStore = defineStore('searchHistory', {
  state: () => ({
    historyList: [], // 搜索历史列表
    maxHistory: 10   // 最大历史记录数
  }),

  actions: {
    // 初始化加载本地存储
    initHistory() {
      try {
        const storedHistory = uni.getStorageSync('searchHistory');
        console.log('加载搜索历史:', storedHistory)
        if (storedHistory) {
          this.historyList = JSON.parse(storedHistory)
        }
      } catch (e) {
        console.error('加载搜索历史失败:', e)
      }
    },

    // 添加搜索历史
    addHistory(keyword) {
      console.log('添加搜索历史:', keyword)
      if (!keyword?.trim()) return

      // 去重处理
      this.historyList = this.historyList.filter(item => item !== keyword)

      // 添加到开头
      this.historyList.unshift(keyword)

      // 限制最大数量
      if (this.historyList.length > this.maxHistory) {
        this.historyList.pop()
      }

      // 保存到本地存储
      this.saveToStorage()
    },

    // 删除单个历史记录
    removeHistory(keyword) {
      this.historyList = this.historyList.filter(item => item !== keyword)
      this.saveToStorage()
    },

    // 清空所有历史记录
    clearHistory() {
      this.historyList = []
      uni.removeStorageSync('searchHistory')
    },

    // 保存到本地存储
    saveToStorage() {
      try {
        uni.setStorageSync('searchHistory', JSON.stringify(this.historyList))
      } catch (e) {
        console.error('保存搜索历史失败:', e)
      }
    }
  }
})
